15. 两个同名函数

Andy 了解了 typedef ,并被告知要始终怀疑重复的代码。

注意:Elecia 和 Andy 使用“向量”这个词。现在,你应该把向量看作与 Python 列表类似的东西。

两个同名函数

下面这行代码可以用来定义一个名为 t_grid 的全新的类型,它是单精度浮点数向量的向量(现在,你可以认为向量与 Python 列表类似)。

typedef vector < vector <float> > t_grid; 

在所有写成 vector < vector <float> > 地方,都可以写成 t_grid

在下面的视频中,Andy 在将他的直方图过滤器代码从 Python 转换为 C++ 时,发现了一件令人惊讶的事情。他可以有两个 不同的 函数,函数名称 相同 ,而且不会造成任何问题。

你可以在视频下面找到 Elecia 和 Andy 所讨论的代码。

bool close_enough(float v1, float v2) { 
    if (abs(v2-v1) > 0.0001 ) {
        return false;
    } 
    return true;
}

bool close_enough(vector < vector <float> > g1, vector < vector <float> > g2) {
    int i, j;
    float v1, v2;
    for (i=0; i<g1.size(); i++) {
        for (j=0; j<g1[0].size(); j++) {
            v1 = g1[i][j];
            v2 = g2[i][j];
            if (abs(v2-v1) > 0.0001 ) {
                return false;
            }
        }
    }
    return true;
}

两个同名函数